package main

import (
	"bufio"
	"fmt"
	"net"
	"os"
	"strings"
)

// Tcp 客户端
// 1.建立与服务端的连接
// 2.进行数据收发
// 3.关闭连接
func main() {
	fmt.Println("TCP client start...")
	// 客户端发起链接
	conn, err := net.Dial("tcp", "localhost:20000")
	if err != nil {
		fmt.Println(err)
		return
	}

	defer conn.Close() //关闭链接

	inputReader := bufio.NewReader(os.Stdin)

	for {
		// 读取用户输入
		input, _ := inputReader.ReadString('\n')
		inputInfo := strings.Trim(input, "\r\n")
		if strings.ToUpper(inputInfo) == "Q" { //如果输入Q 就退出
			return
		}
		_, err := conn.Write([]byte(inputInfo)) //发送数据
		if err != nil {
			fmt.Println(err)
			return
		}
		buf := [512]byte{}
		n, err := conn.Read(buf[:])
		if err != nil {
			fmt.Println("客户端 失败", err)
			return
		}
		fmt.Println(string(buf[:n]))
	}

}
